def fun(*para):
    print(type(para))
    for item in para:
        print(item)


# 调用时参数传递
fun(10, 20, 30, 40)
fun(10)
fun(20, 30)
print('--------------------')
fun([11, 22, 33, 44, 55, 66])

# 调用时参数加一个星 会将列表进行解包
fun(*[11, 22, 33, 44, 55, 66])

# 个数可变的关键字参数
def fun2(**kwpara):
    print(type(kwpara))
    for key, value in kwpara.items():
        print(key, '-----------', value)

# 调用
fun2(name='duiduo', age=18, height=170)
d = {'name': 'duiduo', 'age': 18, 'height': 170}
# fun2(d) # TypeError: fun2() takes 0 positional arguments but 1 was given
# 调用时参数加两个星
fun2(**d)